package com.unitd.modules.sys.entity;

import com.unitd.comm.entity.SysEntity;
import org.hibernate.validator.constraints.Length;

import javax.persistence.Column;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.xml.bind.annotation.XmlAttribute;

/**
 * @desc 字典表
 * @filename SysDict.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0 
 * @date 2017-04-26
 */ 
@Table(name = "sys_dict")
public class SysDict extends SysEntity {

	/** 数据值 */
	private String value;
	/** 标签名 */
	private String label;
	/** 类型 */
	private String type;
	/** 描述 */
	private String description;
	/** 父级编号 */
	@Column(name = "parent_id")
	private String parentId;
	/** 排序（升序） */
	private Long sort;

	/**
	 * @desc 构造方法 SysDict
	 */
	public SysDict(String id, String value, String label, String type, String description, String parentId, Long sort, String createBy, java.util.Date createDate, String updateBy, java.util.Date updateDate, String remarks, String delFlag) {
		this.id = id;
		this.value = value;
		this.label = label;
		this.type = type;
		this.description = description;
		this.parentId = parentId;
		this.sort = sort;
		this.createBy = createBy;
		this.createDate = createDate;
		this.updateBy = updateBy;
		this.updateDate = updateDate;
		this.remarks = remarks;
		this.delFlag = delFlag;
	}

	/**
	 * @desc 构造方法 SysDict
	 */
	public SysDict(String type) {
		this.type = type;
	}

	/**
	 * @desc 构造方法 SysDict
	 */
	public SysDict() {
		super();
	}
	/**
	 * @desc 获取数据值
	 * @return value - 数据值
	 */
	@XmlAttribute
	@Length(min=1, max=100)
	public String getValue() {
		return value;
	}

	/**
	 * @desc 设置数据值
	 * @param value 数据值
	 */
	public void setValue(String value) {
		this.value = value == null ? null : value.trim();
	}

	/**
	 * @desc 获取标签名
	 * @return label - 标签名
	 */
	@XmlAttribute
	@Length(min=1, max=100)
	public String getLabel() {
		return label;
	}

	/**
	 * @desc 设置标签名
	 * @param label 标签名
	 */
	public void setLabel(String label) {
		this.label = label == null ? null : label.trim();
	}

	/**
	 * @desc 获取类型
	 * @return type - 类型
	 */
	@Length(min=1, max=100)
	public String getType() {
		return type;
	}

	/**
	 * @desc 设置类型
	 * @param type 类型
	 */
	public void setType(String type) {
		this.type = type == null ? null : type.trim();
	}

	/**
	 * @desc 获取描述
	 * @return description - 描述
	 */
	@XmlAttribute
	@Length(min=0, max=100)
	public String getDescription() {
		return description;
	}

	/**
	 * @desc 设置描述
	 * @param description 描述
	 */
	public void setDescription(String description) {
		this.description = description == null ? null : description.trim();
	}

	/**
	 * @desc 获取父级编号
	 * @return parent_id - 父级编号
	 */
	@Length(min=1, max=100)
	public String getParentId() {
		return parentId;
	}

	/**
	 * @desc 设置父级编号
	 * @param parentId 父级编号
	 */
	public void setParentId(String parentId) {
		this.parentId = parentId == null ? null : parentId.trim();
	}

	/**
	 * @desc 获取排序（升序）
	 * @return sort - 排序（升序）
	 */
	@NotNull
	public Long getSort() {
		return sort;
	}

	/**
	 * @desc 设置排序（升序）
	 * @param sort 排序（升序）
	 */
	public void setSort(Long sort) {
		this.sort = sort;
	}
}